%%
%% %CopyrightBegin%
%%
%% Copyright Hillside Technology Ltd. 2016. All Rights Reserved.
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
%% You may obtain a copy of the License at
%%
%%     http://www.apache.org/licenses/LICENSE-2.0
%%
%% Unless required by applicable law or agreed to in writing, software
%% distributed under the License is distributed on an "AS IS" BASIS,
%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
%% See the License for the specific language governing permissions and
%% limitations under the License.
%%
%% %CopyrightEnd%
%%

%% This filw as generated using soap:wsdl2erlang, but included in the repository 
%% because it is used by the tests.

%% generated by soap from: e:/e_soap/soap/examples and testcases/europepmc/europepmc.wsdl
%% for service "WSCitationImplService" and port "WSCitationImplPort"
%% using options: [{service,"WSCitationImplService"},{port,"WSCitationImplPort"},{generate,both},{namespaces,[{"http://ws-i.org/profiles/basic/1.1/xsd","P0"},{"http://webservice.cdb.ebi.ac.uk/",undefined}]},{http_server,soap_server_cowboy},{server_name,"europepmc_server"},{http_client,soap_client_ibrowse},{client_name,"europepmc_client"},{attachments,true}]

-module(europepmc_client).

-include("europepmc.hrl").

-export([interface/0]).

%% The functions that are described by the WSDL
-export([searchPublications/4]).
-export([profilePublications/4]).
-export([getCitations/4]).
-export([getReferences/4]).
-export([getTextMinedTerms/4]).
-export([getDatabaseLinks/4]).
-export([getSupplementaryFiles/4]).
-export([getFulltextXML/4]).
-export([getBookXML/4]).
-export([listSearchFields/4]).
-export([getLabsLinks/4]).

-spec searchPublications(Soap_body::searchPublications(),
  Soap_headers::[soap:soap_header()],
  Options::[any()], Attachments::[soap:soap_attachment()]) -> soap:soap_response(searchPublicationsResponse()).
searchPublications(Soap_body, Soap_headers, Options, Attachments) ->
  soap_client_util:call(Soap_body, Soap_headers, Options, "\"\"", interface(), Attachments).

-spec profilePublications(Soap_body::profilePublications(),
  Soap_headers::[soap:soap_header()],
  Options::[any()], Attachments::[soap:soap_attachment()]) -> soap:soap_response(profilePublicationsResponse()).
profilePublications(Soap_body, Soap_headers, Options, Attachments) ->
  soap_client_util:call(Soap_body, Soap_headers, Options, "\"\"", interface(), Attachments).

-spec getCitations(Soap_body::getCitations(),
  Soap_headers::[soap:soap_header()],
  Options::[any()], Attachments::[soap:soap_attachment()]) -> soap:soap_response(getCitationsResponse()).
getCitations(Soap_body, Soap_headers, Options, Attachments) ->
  soap_client_util:call(Soap_body, Soap_headers, Options, "\"\"", interface(), Attachments).

-spec getReferences(Soap_body::getReferences(),
  Soap_headers::[soap:soap_header()],
  Options::[any()], Attachments::[soap:soap_attachment()]) -> soap:soap_response(getReferencesResponse()).
getReferences(Soap_body, Soap_headers, Options, Attachments) ->
  soap_client_util:call(Soap_body, Soap_headers, Options, "\"\"", interface(), Attachments).

-spec getTextMinedTerms(Soap_body::getTextMinedTerms(),
  Soap_headers::[soap:soap_header()],
  Options::[any()], Attachments::[soap:soap_attachment()]) -> soap:soap_response(getTextMinedTermsResponse()).
getTextMinedTerms(Soap_body, Soap_headers, Options, Attachments) ->
  soap_client_util:call(Soap_body, Soap_headers, Options, "\"\"", interface(), Attachments).

-spec getDatabaseLinks(Soap_body::getDatabaseLinks(),
  Soap_headers::[soap:soap_header()],
  Options::[any()], Attachments::[soap:soap_attachment()]) -> soap:soap_response(getDatabaseLinksResponse()).
getDatabaseLinks(Soap_body, Soap_headers, Options, Attachments) ->
  soap_client_util:call(Soap_body, Soap_headers, Options, "\"\"", interface(), Attachments).

-spec getSupplementaryFiles(Soap_body::getSupplementaryFiles(),
  Soap_headers::[soap:soap_header()],
  Options::[any()], Attachments::[soap:soap_attachment()]) -> soap:soap_response(getSupplementaryFilesResponse()).
getSupplementaryFiles(Soap_body, Soap_headers, Options, Attachments) ->
  soap_client_util:call(Soap_body, Soap_headers, Options, "\"\"", interface(), Attachments).

-spec getFulltextXML(Soap_body::getFulltextXML(),
  Soap_headers::[soap:soap_header()],
  Options::[any()], Attachments::[soap:soap_attachment()]) -> soap:soap_response(getFulltextXMLResponse()).
getFulltextXML(Soap_body, Soap_headers, Options, Attachments) ->
  soap_client_util:call(Soap_body, Soap_headers, Options, "\"\"", interface(), Attachments).

-spec getBookXML(Soap_body::getBookXML(),
  Soap_headers::[soap:soap_header()],
  Options::[any()], Attachments::[soap:soap_attachment()]) -> soap:soap_response(getBookXMLResponse()).
getBookXML(Soap_body, Soap_headers, Options, Attachments) ->
  soap_client_util:call(Soap_body, Soap_headers, Options, "\"\"", interface(), Attachments).

-spec listSearchFields(Soap_body::listSearchFields(),
  Soap_headers::[soap:soap_header()],
  Options::[any()], Attachments::[soap:soap_attachment()]) -> soap:soap_response(listSearchFieldsResponse()).
listSearchFields(Soap_body, Soap_headers, Options, Attachments) ->
  soap_client_util:call(Soap_body, Soap_headers, Options, "\"\"", interface(), Attachments).

-spec getLabsLinks(Soap_body::getLabsLinks(),
  Soap_headers::[soap:soap_header()],
  Options::[any()], Attachments::[soap:soap_attachment()]) -> soap:soap_response(getLabsLinksResponse()).
getLabsLinks(Soap_body, Soap_headers, Options, Attachments) ->
  soap_client_util:call(Soap_body, Soap_headers, Options, "\"\"", interface(), Attachments).

%%% --------------------------------------------------------------------
%%% Internal functions
%%% --------------------------------------------------------------------
interface() ->
    ?INTERFACE.
